<?php


class Security
{
	
	public static function globalStripSlashes()
	{
		if (get_magic_quotes_gpc() == 1)
		{
			$_GET = array_map(array($this,'recursiveStripSlashes'),$_GET);
			$_POST = array_map(array($this,'recursiveStripSlashes'),$_POST);
		}
	}
	
	
	private static function recursiveStripSlashes($value)
	{
		// * Prüfen, ob der Wert ein Array ist
		if (is_array($value))
		{
			// * Rekursiver Aufruf dieser Methode
			return array_map(array($this,'recursiveStripSlashes'), $value);
		} else {
			// * Rückgabe des berichtigten Wertes
			return stripslashes($value);
		}
	}
	
	
	public function checkLoginStatus()
	{
		if(isset($_SESSION['username']))
		{
			return true;
		} else {
			return false;
		}
	}
	
	public function generatePassword()
	{
		// * Muster eines sicheren Passworts:
		// * Ks#64z
		$pwd = "";
		for($i=0;$i<6;$i++)
		{
			switch(rand(0,3))
			{
				case 0: // * Großbuchstabe anfügen
				$pwd = $pwd.chr(rand(65,90));break;
				
				case 1: // * Kleinbuchstabe
				$pwd = $pwd.chr(rand(97,122));break;
				
				case 2: // * Sonderzeichen
				$pwd = $pwd.chr(rand(33,38));break;
				
				case 3: // * Ziffer
				$pwd = $pwd.rand(0,9);break;
			}
		}
		return $string;
	}
				
	
	public function verifyPassword($password)
	{
		// * Die einzelnen Regeln überprüfen:
		// * Länge mindestens 8 Zeichen:
		if(strlen($password)<8) return false;		
		// * Dann verifizieren, dass nur die erlaubten Sonderzeichen
		// * sowie Ziffern und Buchstaben drin sind.
		$regexp = '/[^\!|\"|\#|\$|\%|\&|\d|a-zA-Z0–9]/';
		$i = preg_match($regexp,$password);
		
		if($i == 1) return false;			
		// * Leeres Array für die Ergebnisse von preg_match_all
		$empty = array();
		// * Mindestens zwei Ziffern:
		$i=preg_match_all('/[0–9]/',$password,$empty);
		if($i < 2) return false;
		// * Groß- und Kleinbuchstaben:
		$i = preg_match_all('/[A-Z]/',$password,$empty);
		if($i == 0) return false;
		// * Auch abbrechen, wenn nicht ein einziger
		// * Kleinbuchstabe vorhanden ist.
		$i= preg_match_all('/[a-z]/',$password,$empty);
		if( $i == 0) return false;
		// * Passwort entspricht den Regeln
		return true;
}


} // CLASSEND
?>